﻿///////////////////////////////////////////////////////////////////////////////
// 文件名： WinLibraryLoader.cc
// 作者：   671643387@qq.com
// 日期：   2015年11月2日 下午7:42:40
// 简介：   
///////////////////////////////////////////////////////////////////////////////

#include <cassert>

#include "graphics/LibraryLoader.hpp"
using namespace graphics;

LibraryLoader::LibraryLoader()
    : hLibrary_(NULL)
{

}

LibraryLoader::~LibraryLoader()
{
    Unload();
}

bool LibraryLoader::Load(::graphics::string filename)
{
    assert(hLibrary_ == NULL);
    hLibrary_ = ::LoadLibraryW(filename.c_str());
    return (hLibrary_ != NULL);
}

void LibraryLoader::Unload()
{
    if (hLibrary_ != NULL)
    {
        ::FreeLibrary(hLibrary_);
        hLibrary_ = NULL;
    }
}

void* LibraryLoader::GetFunc(const char* funname)
{
    assert(hLibrary_ != NULL);
    return ::GetProcAddress(hLibrary_, funname);
}